package main

import (
	"flag"
	"fmt"
)

/*
	1. 说一下，Go语言类型推断我下边的写法有啥好处吧,因为我被面试的时候曾经问道这个问题。
	2. 你如果用字面上来说，可以说是，Go 语言的类型推断可以明显提升程序的灵活性，使得代码重构变得更加容易，同时又不会给代码的维护带来额外负担（实际上，它恰恰可以避免散弹式的代码修改）,更不会损失程序的运行效率。
	3. 如果我们不显式地指定变量的类型，使得它可以被赋予任何类型的值。也就是说，变量name的类型可以在其初始化时，由其他程序动态地确定。
	4. 在你改变函数的结果类型之后，Go 语言的编译器会在你再次构建该程序的时候，自动地更新变量的类型,如果和我一样用过Python或Ruby
这种动态类型的编程语言的话，一定会觉得这情景似曾相识。没错，通过这种类型推断，你可以体验到动态类型编程语言所带来的一部分优势，
即程序灵活性的明显提升。但在那些编程语言中，这种提升可以说是用程序的可维护性和运行效率换来的。Go 语言是静态类型的，所以一旦在初始化
变量时确定了它的类型，之后就不可能再改变。这就避免了在后面维护程序时的一些问题。另外，请记住，这种类型的确定是在编译期完成的因此不会对程序的运行效率产生任何影响。
*/

func main() {
	name := *flag.String("name", "jinjin", "解释说明")
	flag.Parse()
	fmt.Printf("hello, %v\n", name)
}
